From 29641ecd078c279327cbca5a30ca8426089aed5e Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Wed, 18 Jan 2012 16:27:58 +0000 Subject: [PATCH] wayland: Update modifiers handling to match new semantics Due to changes in the behaviour of the virtual modifiers around MOD1 the implementation of the map_virtual_modifiers vfunc was mangling the modifiers and making keybindings not work correctly. This change updates the implementation to match the X11 implementation's behaviour. --- gdk/wayland/gdkkeys-wayland.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gdk/wayland/gdkkeys-wayland.c b/gdk/wayland/gdkkeys-wayland.c index 55c95e35dc..d49be2f858 100644 --- a/gdk/wayland/gdkkeys-wayland.c +++ b/gdk/wayland/gdkkeys-wayland.c @@ -515,12 +515,10 @@ gdk_wayland_keymap_add_virtual_modifiers (GdkKeymap *keymap, wayland_keymap = GDK_WAYLAND_KEYMAP (keymap); - for (i = 3; i < 8; i++) + for (i = 4; i < 8; i++) { if ((1 << i) & *state) { - if (wayland_keymap->modmap[i] & GDK_MOD1_MASK) - *state |= GDK_MOD1_MASK; if (wayland_keymap->modmap[i] & GDK_SUPER_MASK) *state |= GDK_SUPER_MASK; if (wayland_keymap->modmap[i] & GDK_HYPER_MASK) @@ -540,7 +538,7 @@ gdk_wayland_keymap_map_virtual_modifiers (GdkKeymap *keymap, }; int i, j; GdkWaylandKeymap *wayland_keymap; - gboolean retval; + gboolean retval = TRUE; wayland_keymap = GDK_WAYLAND_KEYMAP (keymap); @@ -548,7 +546,7 @@ gdk_wayland_keymap_map_virtual_modifiers (GdkKeymap *keymap, { if (*state & vmods[j]) { - for (i = 3; i < 8; i++) + for (i = 4; i < 8; i++) { if (wayland_keymap->modmap[i] & vmods[j]) { -- 2.30.2